struct Val {
    val: f64
}
struct GenVal<T> {
    gen_val: T
}
impl Val {
    fn value(&self) -> &f64 { &self.val }
}
impl<T> GenVal<T> {
    fn value(&self) -> &T { &self.gen_val }
}
fn main() {
    let x = Val { val: 5.0f64 };
    let y = GenVal { gen_val: "Hello" };
    println!("{}, {}", x.value(), y.value());
}
